向IPv6的过渡:我们达到了吗?
向IPv6过渡的传奇故事继续让我们所有人感到惊讶。RFC 2460是第一个完整的IPv6协议规范,于1998年12月发布,距今已有20多年。
IPv6的全部意义在于指定IPv4的后续协议,因为IPv4地址可能会用完。然而,我们在十多年前就已经用完了IPv4地址。向IPv6的过渡已经进行了20年,如果说IPv4地址耗尽的前景给我们的努力注入了紧迫感,那么我们已经在耗尽中生活了10年。因此,也许是时候提出这样一个问题了:这种过渡还需要多长时间?
这是在最近的ARIN49会议上向一个小组提出的问题,可以预见的是,对于答案可能是什么并没有明确的共识。我想在这里更详细地探讨一下这个问题。
一
一点点历史
1991年,很明显互联网协议(IP)出现了问题。当时它还是一个很小的互联网,但增长模式是指数级的,每12个月就会翻一番。
我们那时一直在强调B类IPv4地址池,如果没有任何纠正措施,这个地址池将在1994年完全耗尽。我们也对路由系统施加了压力,1992年部署的路由器的内存只足够支持未来12到18个月的路由增长。这些路由和寻址的综合压力由当时IETF ROAD工作组(RFC 1380)集中加以研究和讨论。
为解决这一问题,有一系列短期、中期和长期对策。
在短期内,我们放弃了基于类(Class)的地址计划,而是采用了可变大小的地址前缀模型。包括边界网关协议(BGP)在内的路由协议很快被修改以支持这些无类地址前缀。但是,大小可变的地址前缀给地址分配过程增加了额外的负担。
在中期内,区域互联网注册机构(RIP)使每个区域能够为其地址分配和注册职能提供资源;增加地址分配的特殊性,提供足够的资源以允许更多地应用相对保守的地址分配策略,并允许显著提高地址使用效率。与此同时,使用网络地址转换(NAT)的“地址共享”概念也在互联网服务提供商(ISP)中获得了支持。NAT不仅大大简化了ISP提供服务的流程,在减少地址消耗压力方面也发挥了重要作用。
虽然这些措施将两年的危机推迟到了可管理的十年之久的场景中,但需要长期的技术响应来扩展IPv4中使用的32位地址字段。
任何这样的更改都不可能向后兼容IPv4系统的安装基础。因此,关于该做什么,有几个不同的学派。一种方法是跳转流,切换到使用OSI协议套件的无连接传输配置文件,并在此过程中采用OSI NSAP地址。另一个是除了地址字段的大小之外,尽可能少地改变IP。人们还提出了其他几个关于对IP协议模型进行重大改变的想法。
直到1994年,IETF已经设法确定了最小改变的方法,即IPv6。地址字段被扩展到128位,流ID字段被引入,分片行为被改变并引入一个可选的报头,地址解析协议(ARP)被多播取代。
底线是IPv6不提供任何IPv4中没有的新功能。它没有对IP协议的运行引入任何重大变化。IPv6只是地址更大的IP协议。
二
过渡
虽然IPv6的设计花费了大量的精力,但将网络从IPv4过渡到IPv6的观念却没有得到重视。
鉴于IPv4的广泛采用,有一种天真的期望就是IPv6也会类似地起飞,没有必要考虑这么多。在第一个阶段,我们期望看到应用程序、主机和网络除了IPv4之外,还增加对IPv6的支持,将互联网转变为一个双栈环境。在第二阶段,我们可以逐步取消对IPv4的支持。
这个计划有几个问题!也许其中最严重的是资源分配问题。互联网发展非常迅速,我们的大部分努力都致力于跟上需求。更多的用户、更大的容量、更强大的服务器、更多的内容、更便捷的服务、更加的安全、更好的防御体系——所有这些都围绕一个共同的主题——规模。因此,我们可以集中资源来满足不断扩展的需求,或致力于IPv6的部署。
我们已经采取的短期和中期措施已经解决了地址耗尽的紧迫性问题,因此对业界来说,规模扩展比过渡到IPv6拥有更高的优先级。
在2000年代中期,随着iPhone及其衍生产品的推出,规模扩展问题加速到了一个全新的数量级。突然间,这不仅仅是家庭和企业的规模问题,而是个人和流动性的规模问题。
IPv6成为必要的全部原因正在形成,但我们还没有准备好部署IPv6作为响应。因此,我们增加了剩余IPv4地址的消耗,并用IPv4支持了第一波大规模移动服务。双栈在当时的移动领域甚至还不是一个选项。为3G基础设施融资的经济学相当奇怪,这意味着在3G平台上建立双栈基础设施是不切实际的。
同时,互联网去中心化的性质阻碍了向IPv6过渡的努力。如果没有主机将IPv6集成到其网络协议栈中,那么开发支持IPv6的应用程序有什么意义?如果没有ISP提供IPv6支持,那么将IPv6添加到主机网络协议栈中有什么意义?如果没有主机和应用程序使用IPv6,那么ISP部署IPv6还有什么意义?所以什么都没发生。
首先试图打破这种相互依赖僵局的是各类操作系统,全功能的IPv6协议栈被添加到各种版本的Linux、Windows和MAC OS中,以及IOS和Android的移动主机协议栈中。
但即便如此,也不足以让过渡取得关键进展。可以说,这种情况使IPv6的情况变得更糟,并使过渡推迟了几年。问题是,对于支持IPv6的主机,人们希望使用IPv6。然而,这些主机是坐落在IPv4的海洋中的IPv6孤岛。
针对过渡的努力都集中在通过IPv4网络对IPv6数据包进行隧道化的各种隧道方法上。虽然可以在控制两个隧道端点时手动执行此操作,但这并不是一种有用的方法。我们想要的是一个自动的隧道机制,可以照顾到所有这些细节。
第一个方法是6to4。6to4的第一个问题是它需要公共IPv4地址,因此它不能对NAT后面的IPv6主机提供服务。更关键的问题是,防火墙不知道如何处理6to4的数据包,当有疑问时,默认的操作是拒绝访问。因此6to4导致了20%的失败率,使其无法使用。NAT问题也是一个难题,因此人们设计了第二个自动隧道机制来执行NAT感知和穿透。就失败率而言,这种机制甚至更糟糕——大约40%的Teredo连接尝试被观察到是失败的。
这些最初的过渡工具不仅性能非常差,因为它们非常不可靠,即使在它们工作时,连接也很脆弱,甚至比IPv4更慢。结果是可以预见的。不受欢迎的不仅仅是过渡机制,连IPv6本身也招致了批评。
直到2011年,IPv6在很大程度上被忽视了。只有少数服务提供商试图部署IPv6。然而,在每次尝试中,这些服务提供商都发现自己和他们的供应商必须解决一系列特殊的挑战。IPv6上如果没有丰富的内容和服务,整个实践的价值就非常低了!所以,什么都没发生。
三
终于有动作了!
直到2011年初,IANA管理的中央IPv4地址池耗尽,当年4月第一个RIR的通用分配池告罄,这才引起ISP行业的更多关注。
起初,向IPv6的过渡是步履蹒跚的,但在过去十年里,过渡已经积聚了动力。图1显示了可以访问IPv6服务的IPv6用户的估计份额。
图1 IPv6在所有互联网用户中的使用率—2012年至今
资料来源:APNIC实验室
从2016年年初的5%增加到2017年年底的17%,IPv6数量增加了两倍多。这在很大程度上要归功于印度移动网络中IPv6的快速部署。
此后的三年(2018~2020),这一数字从17%升至30%。第二个增长阶段在很大程度上归功于IPv6在中国的部署。
然而,这不仅仅是一个关于在印度和中国部署的故事。其他经济体的IPv6能力在这五年中也稳步持续增长,如墨西哥、巴西和美国。如果我们以用户中IPv6的部署比例作为衡量标准——大约占所有用户的30%——那么我们有理由得出结论,过渡正在顺利进行。显然,这30%并不是均匀分布的。当我们将国民经济考虑在内时,我们还会看到这种过渡在当前状态下的不同图景(图2)。
图2 2022年4月IPv6的部署情况
资料来源:APNIC实验室
向IPv6的过渡正在一个相对较小的经济体子集中进行。只有32个经济体的IPv6使用率高于30%的全球平均水平。从区域来看,IPv6的使用率似乎在南亚、北美和西欧最高,而在非洲和太平洋(大洋洲)使用率最低。
然而,在经济层面上的这种比较可能会产生误导,因为它们将中国(14亿人口)与皮特凯恩岛(50人口)置于同等地位。如果我们观察10个最大的IPv6用户群体,我们会得到一个稍微不同的视图(表1)。
表1 IPv6用户数量
资料来源:APNIC实验室
经济体 | 支持IPv6的用户(估计) |
印度 | 455百万 |
中国 | 205百万 |
美国 | 123百万 |
巴西 | 57百万 |
日本 | 49百万 |
墨西哥 | 39百万 |
德国 | 36百万 |
越南 | 26百万 |
英国 | 23百万 |
法国 | 22百万 |
这一数据证实了,在世界许多地方,IPv6在大规模消费者网络中的部署进展顺利。
四
还要多久?
现在我们正处于过渡的过程中,下一个问题是,这个过渡还会持续多久?
这似乎是一个简单的问题,但确实需要更多的解释。当我们可以宣布过渡结束时,“终点”是什么?或者说,这种过渡何时“完成”?
到了互联网上不再有基于IPv4的流量的时候?还是到了互联网上的公共服务对IPv4没有需求的时候?或者是只提供IPv6服务的时候?
也许我们应该看看IPv4地址的市场,在IPv4地址价格完全崩溃的时候定义这种过渡的终点?
也许我们可以站在一个务实的立场,不是将完成过渡定义为何时互联网完全不再使用IPv4地址,而是将完成过渡定义为何时不再需要使用IPv4地址。这意味着,当服务提供商只使用IPv6而不支持IPv4访问机制就能运行一个互联网服务时,我们就完成了这一过渡。
这意味着什么?当然,ISPs需要提供IPv6。但是同时,所有连接的边缘网络和这些网络中的主机都需要支持IPv6。毕竟,ISP在完成过渡时没有IPv4服务。这也意味着该ISP的客户端使用的所有服务都必须通过IPv6访问。是的,这包括所有流行的云服务和云平台,所有的内容流媒体和所有的内容分发平台。还包括专门的平台,如Slack、Xero、Atlassian和类似的平台。
我们今天肯定没有达到这一点,在未来两三年内也不太可能达到。世界IPv6发布网站公布的数据显示,在Alexa前1000个网站中,只有约30%的网站可以通过IPv6访问,显然,各个服务平台还有工作要做。
在ARIN 49小组讨论中,有倾向于至少需要再过十年到再过四分之一个世纪的过渡时期等各种观点。
五
为什么这个过渡要花费这么长时间?
显而易见的是,过渡之所以需要这么长时间,是因为没有紧迫感。虽然一些行动者为部署双栈服务和基础设施做出了必要的改变,但其他行动者并不认为此类行动是当前的优先事项。只要推迟任何此类行动不会产生不可接受的商业后果,那么推迟就会继续发生。
部分原因是,采用IPv6并没有获得主要的竞争优势。它没有提供任何比IPv4更高的效率、更低的成本或独特的服务配置文件的特殊功能。运行双协议栈环境的初始阶段意味着更高的成本,而且效益很少。
使用IPv6最初的理由是基于风险规避。NAT形式的地址共享被视为不可接受的措施。当可用的IPv4地址池耗尽时,人们认为互联网的进一步增长将是不可能的,因为我们将全面放弃使用NAT。及时采用IPv6被视为避免这种情况的必要措施。
然而,NAT最初并不是ISP的问题。ISP有效地将NAT外包给用户终端设备(CPE)供应商,从而将整个问题推给最终用户和应用程序。应用程序设计人员面临着一个简单的现实,要么他们的应用程序在NAT的存在下完美地运行,要么就不能工作。应用程序不再采用端到端的连接模型,而是采用服务器/客户端的服务模型。
下一步是部署在连接的客户端没有CPE的移动网络。ISP将NAT部署到自己的基础设施,所谓的运营商级NAT(CGN)变得司空见惯。如果我们在移动服务大规模普及之前完成了过渡,所有这些都是可以避免的。然而,由于这是在过渡期间发生的,每个移动服务提供商都必须推出一个向其客户群提供IPv4服务的方案,无论他们是否已经部署了IPv6。这种或那种形式的CGN是对所有人的强制性要求。IPv6是额外可选的内容。
显然,在互联网的不同部分,人们不同程度地感受到了启动双栈服务的压力。一些运营商不得不紧急部署IPv6,以减轻公共IPv4地址不足的压力,从而支持他们的CGN。其他运营商目前并没有任何部署压力,他们愿意等待合适的时机再去部署。
六
发出共同需求的信号
请记住互联网不是一个单一的实体。网络的组成有很多,包括消费者零售服务网络、企业网络、物联网(IoT)等。
在互联网生态系统中有各种各样的供应商。有IP接入运营商、IP传输提供商、平台提供商、芯片制造商、应用提供商、内容平台等。这些个体行动者通常通过市场信号相互交流各自的需求,而市场信号通常表现为价格。需求下的商品和服务承受价格压力,而不再需要的商品和服务承受价格暴跌。
然而,多年来,我们不让这种基于市场的分配机制影响IP地址。这背后有许多原因,包括认为地址是一种公共物品,希望对地址的消费实行保护原则,以实现某种形式的地址获取公平,以及防止因市场扭曲而扰乱地址分配。
其结果是,传统的定价机制无法发出即将到来的IPv4稀缺的信号。只有在2010年代当地址转让市场被添加到大环境中时,定价信息作为一种市场信号的形式才是有效的。
随着时间的推移,被转让的IPv4地址的价格记录,如图3所示。
图3 2014~2022年IPv4地址的价格
资料来源:Hilco Streambank
如果价格波动是市场情绪变化的信号,那么从2014年年初到2018年年初,公众情绪没有实质性变化。相对缓慢的价格上涨速度表明,对于即将出现的IPv4地址供应短缺的担忧并不存在。即使2018年价格上涨,也被2019年和2020年稳定的价格所抵消。
2021年,情况发生了根本的改变,IPv4地址的价格翻了一番。价格的不断上涨表明,目前市场供不应求。
市场并不擅长预测未来,但有助于我们了解当前所处的阶段。
当前地址价格上涨告诉我们什么?这似乎是在说,过渡即将完成这件事没有达成共识,对IPv4地址的需求将继续超出供应一段时间。但至于这种情况会持续多久,市场定价信息没有表明。
当向IPv6的过渡即将结束时,我们希望看到什么?据推测,到那时,对IPv4将不再有进一步的需求——IPv4的市场地位将从需求驱动转向供过于求。在这种情况下过渡即将结束,需求不会有任何复苏的前景。这将导致市场价格暴跌。
七
过渡要花费很长时间吗?
如果我们不能预测这种过渡何时结束,我们是否至少可以就这种过渡是否会完成形成一个意见?
让我感到震惊的是,人类倾向于将当前情况视为某种形式的强加拖欠。现在我们已经进行了约25年的IPv6过渡,互联网似乎对用户和他们访问的服务都很实用,那么我们自然而然地相信这种情况会继续一段时间,甚至无限期地持续下去。
但是,你可以得出这样的结论,这种情况是否站得住脚,则取决于你准备相信的互联网增长模式。如果互联网的增长阶段实际上已经结束,我们现在看到的是一个饱和的市场,那么是的,我们现在处于一个可以维持的境地。但在目前的情况下,考虑到新加入者仍然需要某种形式的IPv4地址访问,而且随着增长压力的继续,这种情况将变得越来越难以维持。这意味着,已建立的市场,包括世界许多地方的大众市场住宅服务,不一定面临任何扩大其平台和获得更多IPv4地址的重大压力。但这绝不是网络环境的全部。
增长的领域似乎是云服务领域和物联网领域,以及非洲和亚洲部分地区的传统零售互联网接入市场的持续扩张。目前估计,世界78亿人口中,互联网用户人口约为42亿。互联网仍然存在一些增长空间。
八
向IPv6过渡是唯一的选择吗?
关于过渡的讨论假定IPv6是唯一可用选项。如果是这样的话,数字系统的范围不断扩展到嵌入对象的世界,这就使得纯IPv6服务迟早是不可避免的。也许我们应该问,这种关于一组非常有限的选项,即一种选择的看法是否是准确的。
多年来,我们探索了几种不同的网络模型,其中一种似乎提供了潜在的可行替代方案,即基于名称的网络(name-based networks)。在基于名称的网络的最初概念中,我们考虑用服务标识符名称替换数据包头中的地址字段,并根据这些名称路由和转发数据包。当从足够大的距离观察时,基于整数赋值的端点标识和基于某种字符串编码形式的端点标识在很大程度上是同构的。关键在于,基于名称的网络并不是一个特殊的概念,本质上的区别是具有稀疏使用模式的更大的令牌空间。
然而,我们在IPv4的激烈竞争中构建的东西有点不同。当我们解析DNS中的服务名称时,DNS试图为我们提供一个允许访问该服务的地址。地址不一定是该特定服务唯一的名称,因为对不同DNS服务名称的解析查询也可能返回相同的IP地址。地址在时间上不是固定的,因为在不同的时刻进行相同的DNS解析查询可能会导致不同的地址。并且地址不是通用的,因为不同的用户进行相同的DNS解析查询可能会得到不同的地址。
服务名称到IP地址映射中的这种潜在歧义可以在传输和应用程序级别上解决。当连接到该地址时,客户端需要命名它想要连接到的服务。这种显式服务标识是TLS协议中客户端请求交换的一部分、HTTP初始交换的一部分,以及许多其他服务协议的一部分。这种间接级别旨在允许一个服务器承载多个服务,并允许一个服务承载在多个服务器上。结果是,IP地址与服务或网络终端并不唯一相关联。今天的网络是命名网络的一个版本,IP地址的作用是短暂的会话级令牌,它允许网络区分并发数据包流和其他任何东西。
当我们继续探索这个数字空间时,假设我们在20世纪70年代设计的关于分组交换网络的架构是唯一可以工作的架构,并且我们永远不会提出不同的架构,这就有点冒失了。今天的NAT、任播系统、内容分发网络和增加应用级功能都指向互联网正在悄然进行的另一个转变。它不再依赖于作为不同网络媒体和应用之间的通用适配协议的IP层,而是将共同依赖的协议栈提升到应用层。
九
IPv6我们达到了吗?
很明显还没有。
但我们正在逼近。如果终点是为客户提供纯IPv6服务,那么在内容和服务平台领域采用IPv6的持续努力将对我们何时达到这一点产生一些影响。
我没有看到关于CGN中使用的IPv4地址数量与用户规模的供应规则的公开数据。但是,随着服务平台中IPv6使用的增加和应用程序中IPv6偏好规则的使用,我绝对相信所需的IPv4地址池大小与客户群的比例会随着时间的推移逐步下降。
这引出了第二个观点:我们很可能不会轰轰烈烈地到达这个过渡的终点,而是悄无声息地到达。并不是所有的ISP都会在某个特定的日期关闭他们的CGN,退出IPv4。一种更有可能的情况是,为ISP的客户端提供服务所需的IPv4地址池的大小将继续下降。在某种程度上,为ISP自己的基础设施继续投入资源来运营这些CGN服务是没有商业价值的。对IPv4服务有需求的客户需要找到一个仍然提供IPv4的ISP,或者切换到外部IPv4服务,并使用某种形式的VPN隧道来访问它。这可能不会同时发生在所有地方,而是在一个较长的时期内以一种零敲碎打的方式发生。
那么,这种过渡何时结束?
我还是不知道!
杰夫·休斯顿
(Geoff Huston)
■ APNIC首席科学家
来源:APNIC
翻译:董明(东北大学)
投稿或合作,请联系:eduinfo@cernet.com
往期推荐
欢迎分享、在看与点赞
积极留言,更会有意外惊喜~